package caches

type baseStore struct {
	getFunc func(key string) string
	keyFunc func(string) string
}

func NewBaseStore(key func(string) string, f func(key string) string) *baseStore {
	if key == nil {
		key = func(s string) string {
			return s
		}
	}
	if f == nil {
		f = func(s string) string {
			return s
		}
	}
	return &baseStore{
		getFunc: f,
		keyFunc: key,
	}
}

func (store *baseStore) Get(key string) interface{} {
	return store.getFunc(key)
}

func (store *baseStore) Key(key string) string {
	return store.keyFunc(key)
}
